package controlador;


import java.awt.event.ActionListener;
import modelo.Categoria;
import modelo.CategoriaDAO;


import java.awt.event.ActionEvent;

import vista.VentanaCategoria;


public class ControladorCategoria implements ActionListener {

	private VentanaCategoria ventanaCategoria;

	public ControladorCategoria() {
		super();
		this.ventanaCategoria = new VentanaCategoria();
		this.ventanaCategoria.setLocationRelativeTo(null);
		this.ventanaCategoria.setVisible(true);
		this.ventanaCategoria.addListener(this);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equals("Registrar")){
			RegistrarCategoria();
		}
		else if (e.getActionCommand().equals("Buscar")){ 
			ConsultarCategoria();
		
		}	
		else if (e.getActionCommand().equals("Cancelar")){ 
			ventanaCategoria.borrarDatos();
		}
		else if(e.getActionCommand().equals("Salir"))
			System.exit(99);
	}

	public void RegistrarCategoria(){
		try
		{
			if(ValidarCampos()==false)
				
				ventanaCategoria.mostrarMensaje("Debe llenar todos los campos");
			else
			{
				CategoriaDAO categoriaDAO = new CategoriaDAO();
				if(categoriaDAO.SoloBuscar(ventanaCategoria.getCodCategoria())==false)
				{
				  
				  Categoria categoria = new Categoria(ventanaCategoria.getCodCategoria(),ventanaCategoria.getDescripcionCateg());
				  categoriaDAO.registrarCategoria(categoria);
				  ventanaCategoria.mostrarMensaje("La Categoria se ha registrado exitosamente");
				  ventanaCategoria.borrarDatos();
				}
			    else
			      ventanaCategoria.mostrarMensaje("La Categoria ya se encuentra registrado");
			}
		}
		catch(Exception e)
		{
			ventanaCategoria.mostrarMensaje("La Categoria No se pudo registrar, verifique que los datos sean correctos");
			ventanaCategoria.borrarDatos();
		}

	}

	public void ConsultarCategoria(){
		if (ventanaCategoria.getCodCategoria().equals(""))
		{
			ventanaCategoria.mostrarMensaje("Verifique que el campo codigo no este vacio");
		}
		else{
		  CategoriaDAO categoriaDAO = new CategoriaDAO();
		  String valor = categoriaDAO.consultarCategoria(ventanaCategoria.getCodCategoria());
		  ventanaCategoria.setJtxtDescripcionCateg(valor);
		      if(valor.equals(""))
			  ventanaCategoria.mostrarMensaje("Categoria no encontrada");
		}
	}


	public boolean ValidarCampos(){
		boolean validos = true;
		if (ventanaCategoria.getCodCategoria().equals("")|| 
				ventanaCategoria.getDescripcionCateg().equals("")){
			validos = false;
		}
		return validos;
	}
}